#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#include "los_task.h"
#include "ohos_init.h"
#include "lz_hardware.h"
#include "file1.h"


#define WH_GPIO     GPIO0_PC7
#define RA_GPIO     GPIO0_PA2
#define GS_GPIO     GPIO0_PC4


int global_soilMoisture = 0;
int global_rainStatus = 0;
int global_airQuality = 0;

LzGpioValue value_wh = LZGPIO_LEVEL_LOW;
LzGpioValue value_rs = LZGPIO_LEVEL_LOW;
LzGpioValue value_gs = LZGPIO_LEVEL_LOW;

/***************************************************************
* 函数名称: 传感器初始化
***************************************************************/
void sensor_1()
{

    /* 初始化引脚为GPIO */
    LzGpioInit(WH_GPIO);
    LzGpioInit(RA_GPIO);
    LzGpioInit(GS_GPIO);
    
    // 设置GPIO口为输出模式
    LzGpioSetDir(WH_GPIO, LZGPIO_DIR_IN);
    LzGpioSetDir(RA_GPIO, LZGPIO_DIR_IN);
    LzGpioSetDir(GS_GPIO, LZGPIO_DIR_IN);

    /* 引脚复用配置为GPIO */
    PinctrlSet(WH_GPIO, MUX_FUNC0, PULL_KEEP, DRIVE_LEVEL0);
    PinctrlSet(RA_GPIO, MUX_FUNC0, PULL_KEEP, DRIVE_LEVEL0);
    PinctrlSet(GS_GPIO, MUX_FUNC0, PULL_KEEP, DRIVE_LEVEL0);
       

    LzGpioGetVal(WH_GPIO, &value_wh);
    LzGpioGetVal(RA_GPIO, &value_rs);
    LzGpioGetVal(GS_GPIO, &value_gs);

}

/***************************************************************
* 函数名称: tushi
***************************************************************/
void wh()
{            
    LzGpioGetVal(WH_GPIO, &value_wh);
    if (value_wh == LZGPIO_LEVEL_LOW) 
    {
        printf("土壤湿度值 (value_wh = %d)\n", value_wh);
        global_soilMoisture = 0; // 假设 LOW 代表某种特定的土壤湿度值
    }
    else
    {
        printf("土壤湿度值(value_wh = %d)\n", value_wh);
        global_soilMoisture = 1; // 假设 HIGH 代表另一种土壤湿度值
    }
}

/***************************************************************
* 函数名称: 雨滴
***************************************************************/
void ra()
{              
    LzGpioGetVal(RA_GPIO, &value_rs);
    if (value_rs == LZGPIO_LEVEL_LOW) 
    {
        printf("youyu (value_rs = %d)\n", value_rs);
        global_rainStatus = 0; 
    }
    else
    {
        printf("meiyu (value_rs = %d)\n", value_rs);
        global_rainStatus = 1;
    } 
}


/***************************************************************
* 函数名称: 气体
***************************************************************/
void gs()
{               
    LzGpioGetVal(GS_GPIO, &value_gs);
    if (value_gs == LZGPIO_LEVEL_LOW) 
    {
        printf("kq (value_gs = %d)\n", value_gs);
        global_airQuality = 0; 
    }
    else
    {
        printf("kq (value_gs = %d)\n", value_gs);
        global_airQuality = 1; 
    }
}
